package com.niit.session13;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParse {
	public static void main(String[] args) {
		DateParse dateParse = new DateParse();
		dateParse.parse();
		try {
//			如果调用的方法，有往外跑异常，那么调用方就必须要处理这个异常
			dateParse.parse1();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
//	如果要把异常跑出去，可以在方法定义后面加上 throws和要跑出去的异常的名字
	public void parse1() throws ParseException {
		String strDate = "2023-03-20 15:34:00";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date parse = sdf.parse(strDate);
		System.out.println(parse);
	}
	
	
	public void parse() {
		String strDate = "2023-03-20 15:34:00";
//		String 转日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		try语句块，把可能会发生异常的代码包裹起来
		try {
			System.out.println(1/0);
			Date parse = sdf.parse(strDate);
			System.out.println(parse);
//			catch语句块：用于捕获异常，括号内写上要捕获的异常名字，大括号内写捕获到异常后要进行的操作
		}catch(ParseException e) {
//			打印异常消息
			System.out.println(e.getMessage());
//			打印堆栈信息，也就是那些红色的报错
			e.printStackTrace();
//			catch语句块后面还可以继续捕获别的异常，但是要注意，父类的异常要写在子类的后面
		}catch (ArithmeticException e) {
			e.printStackTrace();
//			不管try语句块中的代码是否正常运行都会执行finally语句块
		}finally {
			System.out.println("finally被执行了");
		}
	}
	

}
